home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d11 / frasrc14.arc / FRACTSRC.DOC < prev    next >
Text File  |  1990-08-02  |  6KB  |  131 lines

  1. FRACTSRC.ZIP includes the complete source code for FRACTINT (.C and .ASM).
  2. Recognizing that not everyone HAS (or even wants) an assembler, much less
  3. either MASM 5.1 or Turbo-ASM, which are the only two assemblers that the
  4. authors are aware of that can handle these particular files, it also contains
  5. a complete set of .OBJ files from the assembler code,
  6.  
  7. Note that the Keepers of the Official Sets of Source Code (Bert Tyler and
  8. Timothy Wegner) both use the Microsoft 5.1 or 6.0 C compiler and Microsoft
  9. 5.1 assembler, so that is the one combination of compiler/assemblers that is
  10. pretty much guaranteed to handle FRACTINT in all of its various mutations.
  11. Given that several of FRACTINT's co-authors now prefer (or only have!)
  12. alternate combinations, we have re-arranged the code to (usually) handle 
  13. several popular alternatives.  In particular:
  14.  
  15.  
  16. Microsoft C 5.1 or 6.0 (and MASM 5.1):
  17. ======================================
  18.  
  19. Just run MAKEFRAC.BAT, which invokes the Microsoft MAKE utility using
  20. the files FRACTINT.MAK and FRACTINT.LNK.  Note that the assembler .OBJ files
  21. have been included in the .ZIP file, so that you don't really need MASM
  22. unless you are going to modify one or more of them.  If you ARE going to
  23. modify one of the assembler files, note that the distributed versions rely
  24. on some nifty features added to version 5.1 (like the '.model medium,c'
  25. option) and will not assemble under older versions of MASM without a LOT
  26. of work.
  27.  
  28. MSC 6.0 users:  Due to limitations with (and a bug in) MSC 6.0, the following
  29. files *must* be compiled with the '/qc' option:  FRACTALS.C (without the
  30. '/qc' option, MSC chokes with a heap overflow on pass 2) and PARSER.C 
  31. (without the '/qc' option, MSC 6.0 creates a bad OBJ file!!)
  32.  
  33.  
  34. Quick-C:
  35. ========
  36.  
  37. As of version 9.0, FRACTINT is just too big for the interactive Quick-C
  38. (QC) environment.  You have to use the command-line variant of Quick-C
  39. (QCL) these days (which even works, now - we chopped up the large routine
  40. in FRACTINT.C that was choking Quick-C).  To convert the MAKEfiles to use
  41. Quick-C rather than "regular" C, edit FRACTINT.MAK, comment out the fifth
  42. line (the one that goes " cl /AM ...") and un-comment out the second line
  43. (the one that goes " qcl /AM ..."). 
  44.  
  45.  
  46. Turbo-C, Turbo-C++ and TASM
  47. ===========================
  48.  
  49. Sorry, Turbo-C fans, but as of version 14.0, FRACTINT requires TC++.
  50. The lack of initialized FAR arrays and structures just did the older Turbo-C
  51. product in.  The *good* news is that several of the FRACTINT authors now
  52. use Turbo-C++, so the odds of released FRACTINT distributions that do
  53. not sompile with Turbo products are lower than they used to be.
  54.  
  55. We have replaced the old TC.MAK and TC.LNK files with a FRACTINT.PRJ
  56. replacement that Mark Peterson uses to compile and link FRACTINT using
  57. the Turbo products on his machine.
  58.  
  59.  
  60. Where the Goodies are
  61. =====================
  62.  
  63. It has come to our attention that people who have no interest in fractals
  64. at all have been wandering through the FRACTINT source code just to get at
  65. some of the neat tricks buried therein.  Here are a few hints as to where
  66. to look:
  67.  
  68. DEBUGFLA.DOC    - (semi-)documented list of the programmer's debugging
  69.                   flags that have been buried in Fractint for years,
  70.                   but never documented.
  71.  
  72. FRACTINT.C    - The main routine.  Nothing special here.
  73. FRACTINT.H    - General Include file.  Nothing special here, either.
  74. FRACTYPE.H    - Fractal type-specific Include file.
  75. PROMPTS.C    - The full-screen prompting code (using support routines
  76.           in VIDEO.ASM)
  77.  
  78. FRACTALS.C,    - Most of the fractal-specific code.  If you want to know
  79. CALCFRAC.C      how a fractal is calculated, look in here.  Specific
  80.           speed-em-up support for special fractal types is in...
  81. CALCMAND.ASM    - Mandelbrot/Julia set calculations.
  82. NEWTON.ASM    - Newton calculations
  83. JB.C         - "Julibrot" fractal type calculations
  84. TESTPT.C    - "Roll-your-own" fractal routine
  85. MPMATH_C.C,    - Mark Peterson's "fast-math" support routines.
  86. MPMATH_A.ASM,      (this stuff puts some of the routines supplied by your
  87. FPU387.ASM,       favorite "C" compiler to shame!)
  88. FPU087.ASM      ...
  89. PARSER.C    - The "type=formula" formula parser routines
  90.  
  91. VIDEO.ASM    - Assembler code containing all of the video routines
  92.           (setting up the video, reading/writing pixels, zoom-box
  93.           code, color-cycling, graphics-to-text "help" switch,
  94.           ... with help from the routines below for special adapters:
  95. TARGA.C,    - TARGA Video Routines
  96. TARGA.H,      ...
  97. LOADMAP.C,      ...
  98. TGASUBS.C      ...
  99. FR8514A.ASM    - 8514/A Routines
  100. HGCFRA.ASM    - Hercules Video Routines
  101. DISKVID.C    - "DISK'RAM" video routines
  102. YOURVID.C    - "Roll-your-own" video routines
  103.  
  104. GENERAL.ASM    - General assembler code having nothing to do with fractals.
  105.           Lots of the tricky stuff is in here, and many of the "C"
  106.           routines that perform tricky functions rely on support
  107.           code buried in here.  In particular, this routine has the:
  108.             CPU, FPU Detectors
  109.             Keyboard routines
  110.             Mouse routines
  111.             Expanded memory routines
  112.             32-bit scaled integer multiply and divide routines
  113.  
  114. ENCODER.C    - GIF Encoder routine.
  115. GIFVIEW.C,    - GIF Decoder routines.
  116. DECODER.C,
  117. TGAVIEW.C,      (including a TARGA-format encoder/decoder currently used
  118. F16.C          only for the "Continuous Potential" algorithm)
  119.  
  120. LINE3D.C,    - 3D manipulation routines
  121. 3D.C
  122.  
  123. ROTATE.C    - routines which "spin" the VGA video-DAC.
  124. CONFIG.C    - general Fractal File configuration routines.
  125.  
  126. HELP.C,        - HELP support
  127. FARMSG.ASM    - HELP and various other messages (placed in this FAR
  128.           segment to free up some precious NEAR data space)
  129.  
  130. PRINTER.C    - The Printer Routines
  131.